Apparatus, system, method and computer program product for determining an optimum route based on historical information

ABSTRACT

An apparatus, system, method and computer program product for determining optimum routing of vehicles based on historical information as well as user preferences and current travel conditions. Historical data is compiled and statistically analyzed to determiner characteristics of each possible route between two points. The characteristic information is then used along with user preference information and current travel condition information to determine an optimum route between the two points. These characteristics provide an indicator to a traveler of the most probable experience they will encounter when traveling along a route under various conditions. Thus, a more complete determination of an optimum route may be determined in view of preferences of a user and experiences of other travelers, than the mere determination of shortest route or shortest travel time as in the prior art.

BACKGROUND OF THE INVENTION

[0001] 1. Technical Field

[0002] The present invention provides an apparatus, system, method andcomputer program product for determining an optimum route based onhistorical information.

[0003] 2. Description of Related Art

[0004] Many vehicle navigation systems are known in the art forobtaining an “optimum” route between a starting location and an endinglocation. These “optimum” routes, however, are typically determined tobe either the route having the shortest travel distance between twopoints or the route having the shortest travel time.

[0005] Some vehicle navigation systems that determine “optimum” routesmake use of current traffic situations to augment their determination oftravel times. In other words, the occurrence of certain trafficsituations, such as a road being blocked, an accident, roadconstruction, and the like, influence the travel time. These navigationsystems, however, very often do not provide the actual optimum routebecause they do not take into consideration many factors that influencewhether a route provides the best overall travel experience to the user.For example, using the prior art systems, a user may be able to travelfrom point A to point B along a path that is the shortest traveldistance, but may be delayed considerably by flooding of the road, maybe involved in an accident due to icy conditions, may be subjected to ahigh crime area, or the like. Similarly, a prior art system maydetermine that a particular route from point A to point B is theshortest travel time and end up being incorrect because factors otherthan the current traffic conditions may cause delays in traveling alongthe path.

SUMMARY OF THE INVENTION

[0006] The present invention provides an apparatus, system, method andcomputer program product for determining an optimum route for a vehiclebased on historical data. The present invention provides a mechanism bywhich historical data regarding legs of a travel path is used to comparevarious possible routes between a starting point and an ending point.Based on the comparison, an optimum route is determined in accordancewith selection criteria entered by a party requesting the optimum routedetermination. The historical data used may include measured dataobtained from other vehicles as well as environmental data, trafficdata, crime data, statistical data, and the like, obtained from one ormore historical data suppliers.

[0007] The historical data is compiled and statistically analyzed todetermine characteristics of each possible route, and legs of eachpossible route, between two points. These characteristics provide anindicator to a traveler of the most probable experience they willencounter when traveling along a route under various conditions. Thus, amore complete determination of an optimum route may be determined inview of preferences of a user and experiences of other travelers, thanthe mere determination of shortest route or shortest travel time as inthe prior art. The prior art systems do not take into consideration theenvironmental and temporal conditions that may influence thedetermination of an optimum route.

BRIEF DESCRIPTION OF THE DRAWINGS

[0008] The novel features believed characteristic of the invention areset forth in the appended claims. The invention itself, however, as wellas a preferred mode of use, further objectives and advantages thereof,will best be understood by reference to the following detaileddescription of an illustrative embodiment when read in conjunction withthe accompanying drawings, wherein:

[0009]FIG. 1 is an exemplary block diagram of a distributed dataprocessing system in accordance with the present invention;

[0010]FIG. 2 is an exemplary block diagram of a data processing systemthat may be used to implement the server of the present invention;

[0011]FIG. 3 is an exemplary block diagram of a data processing systemthat may be used to implement a client system in accordance with thepresent invention;

[0012]FIG. 4 is an exemplary functional block diagram of a client deviceaccording to the present invention;

[0013]FIG. 5 is an exemplary functional block diagram of the vehiclerouting server according to the present invention;

[0014]FIG. 6 is an exemplary diagram of a characteristic database datastructure according to the present invention;

[0015]FIG. 7 is an exemplary diagram illustrating optimum routedetermination according to the present invention; and

[0016]FIG. 8 is a flowchart outlining an exemplary operation of thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0017] With reference now to the figures, FIG. 1 is a pictorialrepresentation of a network of data processing systems in which thepresent invention may be implemented. Network data processing system 100is a network of computers in which the present invention may beimplemented. Network data processing system 100 contains a network 102,which is the medium used to provide communications links between variousdevices and computers connected together within network data processingsystem 100. Network 102 may include connections, such as wired links,wireless communication links, satellite communication links, infraredcommunication links, fiber optic cables, and the like.

[0018] In the depicted example, a vehicle routing server 104 isconnected to network 102. In addition, history data supplier systems108-112 are also connected to network 102. The history data suppliersystems 108-112 may be, for example, personal computers, portablecomputers, servers, databases, mainframe computers, or the like. Thehistory data supplier systems 108-112 supply historical informationregarding legs of travel paths to vehicle routing server 104. Networkdata processing system 100 may include additional servers, historicaldata supplier systems, and other devices not shown.

[0019] In the depicted example, network data processing system 100 isthe Internet with network 102 representing a worldwide collection ofnetworks and gateways that use the TCP/IP suite of protocols tocommunicate with one another. At the heart of the Internet is a backboneof high-speed data communication lines between major nodes or hostcomputers, consisting of thousands of commercial, government,educational and other computer systems that route data and messages. Ofcourse, network data processing system 100 also may be implemented as anumber of different types of networks, such as for example, an intranet,a local area network (LAN), or a wide area network (WAN). FIG. 1 isintended as an example, and not as an architectural limitation for thepresent invention.

[0020] The history data suppliers 108-112 provide historical data to thevehicle routing server. The historical data may be any type of data thatmay affect the selection of optimum routes. For example, the historicaldata may include environmental condition information, weather conditioninformation, traffic condition information, road condition information,criminal activity information, traffic law enforcement information,accident information, and the like. This information will be providedalong with indicators of date and time of the various conditions. Thehistory data supplier 108, for example, may be a weather reportinghistorical data supplier, history data supplier 110 maybe a criminalactivity reporting historical data supplier, and history data supplier112 may be a traffic/road condition reporting historical data supplier.

[0021] The historical data provided by the historical data suppliers108-112 is preferably compartmentalized into established routing legs.That is, within a geographical area, routing legs are defined andestablished as a means by which historical data is reported. Forexample, a leg may be a portion of a route existing betweenintersections of a roadway, a portion of a route existing between twolandmarks, a portion of a route existing between two way points whichmay be set deliberately or arbitrarily, and the like. A route between astarting point and an ending point may comprise one or more of theselegs.

[0022] The historical data is compartmentalized into legs each havingvarious characteristics as determined from the historical data obtainedfrom the historical data suppliers 108-112. Thus, for leg 1, weather,traffic, and road condition information may be compiled along withtraffic law enforcement, criminal activity information and accidentinformation. This information is preferably stored in a database in therespective historical data suppliers 108-112 until it is ready forupload to the vehicle routing server 104. The information may be storedin a manner such that the data is indexed by a leg designator, forexample.

[0023] The vehicle routing server 104 receives the historical data fromthe historical data suppliers 108-112, compiles and correlates thehistorical data to determine characteristics of each leg, and stores orupdates the leg characteristics in a database 118. In addition to thehistorical data from the historical data suppliers 108-112, vehiclehistorical information from one or more vehicles is provided to thevehicle routing server 104. The vehicle historical information provides,for example, information relating to average speeds through various legsof a route, elapsed time to travel from one end of a leg to the other,and the like. This information is also used to identify variouscharacteristics of the predefined legs.

[0024] The vehicle historical information may be reported to the vehiclerouting server 104 by way of a wireless transmitter in a vehicle, suchas vehicle 114. The wireless transmitter sends the vehicle historicalinformation to a base station 116 which is coupled to the network 102via a wired or wireless connection. The base station 116 then transmitsthe vehicle historical information to the vehicle routing server 104 viathe network 102. The vehicle historical information may be uploaded fromthe vehicle 114 to the vehicle routing server 104 via the base station116 upon the occurrence of an event, at predetermined time intervals, orthe like. For example, the vehicle historical information may beuploaded as each leg of a route is completed, with measuring instrumentsin the vehicle being initialized at the start of each new leg.Alternatively, the vehicle historical information may be stored in amemory of the vehicle 114 until the entire route is completed at whichtime the information may be uploaded to the vehicle routing server 104.

[0025] The historical data obtained from the historical data suppliers108-112 and the vehicle historical data are correlated to identifycharacteristics of the various predefined legs. The characteristics arestored in the database 118 of the vehicle routing server 104. From thecharacteristic information stored in the database 118 of the vehiclerouting server 104, estimated times of traversing a leg may bedetermined for various conditions. For example, estimated times oftraversing a leg in normal conditions, rain, snow, flood conditions,night, day, weekday, weekend, during construction, and the like. Inaddition probabilities of receiving a traffic ticket, being subjected tocriminal activity, and the like may be determined. The estimated timesand the probability information may be utilized along with userselections of preferred route criteria, to determine an optimum route totravel from a starting point to an ending point.

[0026] For example, assume a user wishes to travel from a starting pointto an ending point with a low probability of getting a traffic ticketand the current environmental conditions indicate that it is raining.Under these criteria, a route having legs that are not subject toflooding and have a lower history of traffic tickets being written wouldbe preferred over another route in which either flooding is a problem orhigh incidents of traffic tickets are identified. The determination maybe made by a routing algorithm that takes into consideration thecharacteristics of each leg of each possible route between the startingpoint and the ending point as well as current traveling conditions anduser preferences.

[0027] Similarly, assume that another user wishes to travel from astarting point to an ending point with a low probability of beinginvolved in an accident and the current environmental conditionsindicate that it is snowing. Under these criteria, a route having legsthat have fewer overpasses, bridges and areas where, historically, theroad becomes slippery during icy conditions, may be preferred overanother route. Further, of the routes having no overpasses, bridges,etc., a route having a historically lower number of accidents may bepreferred over others, for example.

[0028] Alternatively, for example, a score for each possible routebetween a start point and an end point may be calculated and compared toscores of other routes between the start and end points. The scores maybe calculated using a route determination algorithm that providesvarious scores to various characteristics of a route. Thecharacteristics for the route are determined based on the historicalinformation received from the historical data suppliers 108-112. Thus,based on the historical information received, a statistical analysis maybe made to determine if a route, or portion of a route such as a leg, isa low, medium or high crime area, low, medium or high trafficenforcement area, has a low, medium or high probability of flooding, andthe like. Each of these characteristics may be provided with a score.

[0029] For example, a high income residential area (which may bedetermined based on residential tax revenue data, for example) may begiven a score of 5 while an area having a high crime rate may be given ascore of −1. Based on the total scores for each possible route betweenthe start point and the end point, a determination of the optimum routemay be made, e.g., the route having the highest score is the optimum.

[0030] The score for a route may be a sum of the scores for each leg ofthe route. Thus, the various characteristics for each leg, as identifiedby the compiled historical information, may be given scores and thetotal score for each leg of a route summed together to obtain an overalltotal score for the route.

[0031] The scores may be weighted by the current situation parametersand the criteria entered by the user of the vehicle for identifying anoptimum route. For example, if the user wishes to avoid a high crimearea, the score for the crime activity in the area may be weighted moreheavily, e.g., given a multiplier of 2 or the like. Likewise, if thecurrent situation indicates that it is raining, a rain basedcharacteristic of the leg of the route may receive a smaller or heavierweight, e.g. 0.1 or 3, depending on the particular embodiment. Thus, ifa leg of the route typically floods during raining conditions, the raincharacteristic score for that leg may be given a −0.5 and a multiplierof 1.5.

[0032] Other ways of identifying an optimum route based on historicalinformation may be used without departing from the spirit and scope ofthe present invention. For example, expert systems, neural networks,rule based systems, inference engines, data mining techniques, and thelike, may be used to identify an optimum route based on the historicaldata obtained from the historical data suppliers 108-112 and criteriaentered by a user. For purposes of the following description of thepreferred embodiments, it will be assumed that the above describedscoring technique will be used, although it should be understood thatthe present invention is not limited to this particular technique.

[0033] Referring to FIG. 2, a block diagram of a data processing systemthat may be implemented as a server, such as vehicle routing server 104or historical data suppliers 108-112 in FIG. 1, is depicted inaccordance with a preferred embodiment of the present invention. Dataprocessing system 200 may be a symmetric multiprocessor (SMP) systemincluding a plurality of processors 202 and 204 connected to system bus206. Alternatively, a single processor system may be employed. Alsoconnected to system bus 206 is memory controller/cache 208, whichprovides an interface to local memory 209. I/O bus bridge 210 isconnected to system bus 206 and provides an interface to I/O bus 212.Memory controller/cache 208 and I/O bus bridge 210 maybe integrated asdepicted.

[0034] Peripheral component interconnect (PCI) bus bridge 214 connectedto I/O bus 212 provides an interface to PCI local bus 216. A number ofmodems may be connected to PCI bus 216. Typical PCI bus implementationswill support four PCI expansion slots or add-in connectors.Communications links to network computers 108-112 in FIG. 1 may beprovided through modem 218 and network adapter 220 connected to PCIlocal bus 216 through add-in boards.

[0035] Additional PCI bus bridges 222 and 224 provide interfaces foradditional PCI buses 226 and 228, from which additional modems ornetwork adapters may be supported. In this manner, data processingsystem 200 allows connections to multiple network computers. Amemory-mapped graphics adapter 230 and hard disk 232 may also beconnected to I/O bus 212 as depicted, either directly or indirectly.

[0036] Those of ordinary skill in the art will appreciate that thehardware depicted in FIG. 2 may vary. For example, other peripheraldevices, such as optical disk drives and the like, also may be used inaddition to or in place of the hardware depicted. The depicted exampleis not meant to imply architectural limitations with respect to thepresent invention.

[0037] The data processing system depicted in FIG. 2 may be, forexample, an IBM RISC/System 6000 system, a product of InternationalBusiness Machines Corporation in Armonk, N.Y., running the AdvancedInteractive Executive (AIX) operating system.

[0038] The data processing system in FIG. 2 may execute one or morestored applications for performing the various functions of the presentinvention. Alternatively, the functionality of the present invention maybe “hardwired” into the hardware of the data processing system or intoadditional components coupled to the data processing system shown inFIG. 2. It will be assumed for purposes of the description of thepresent invention that the invention is implemented as machine readableinstructions that are executed by the data processing system shown inFIG. 2, although it should be appreciated that the present invention isnot limited to such an embodiment.

[0039] With reference now to FIG. 3, a block diagram illustrating a dataprocessing system is depicted in which the present invention may beimplemented. Data processing system 300 is an example of a clientcomputer, such as a computer installed in vehicle 114, for example.Although in a preferred embodiment, the client computer is positioned ina vehicle, the invention is not limited to such. Rather, the clientcomputer may be a standard desktop computer, laptop computer, personaldigital assistant, or the like, and may not be associated directly witha vehicle.

[0040] In addition, the data processing system 300 shown in FIG. 3employs a peripheral component interconnect (PCI) local busarchitecture. Although the depicted example employs a PCI bus, other busarchitectures such as Accelerated Graphics Port (AGP) and IndustryStandard Architecture (ISA) may be used.

[0041] Processor 302 and main memory 304 are connected to PCI local bus306 through PCI bridge 308. PCI bridge 308 also may include anintegrated memory controller and cache memory for processor 302.Additional connections to PCI local bus 306 may be made through directcomponent interconnection or through add-in boards. In the depictedexample, SCSI host bus adapter 312, expansion bus interface 314 andwireless transmitter interface 315 are connected to PCI local bus 306 bydirect component connection. In contrast, audio adapter 316, graphicsadapter 318, and sensor interface 319 are connected to PCI local bus 306by add-in boards inserted into expansion slots.

[0042] Expansion bus interface 314 provides a connection for a keyboardand/or pointing device adapter 320 and additional memory 324. Smallcomputer system interface (SCSI) host bus adapter 312 provides aconnection for hard disk drive 326, tape drive 328, and CD-ROM drive330. Typical PCI local bus implementations will support three or fourPCI expansion slots or add-in connectors.

[0043] An operating system may run on processor 302 and may be used tocoordinate and provide control of various components within dataprocessing system 300 in FIG. 3. The operating system may be acommercially available operating system, such as Linux or Windows 2000,which is available from Microsoft Corporation. An object orientedprogramming system such as Java may run in conjunction with theoperating system and provide calls to the operating system from Javaprograms or applications executing on data processing system 300. “Java”is a trademark of Sun Microsystems, Inc. Instructions for the operatingsystem, the object-oriented operating system, and applications orprograms are located on storage devices, such as hard disk drive 326,and may be loaded into main memory 304 for execution by processor 302.

[0044] Those of ordinary skill in the art will appreciate that thehardware in FIG. 3 may vary depending on the implementation. Otherinternal hardware or peripheral devices, such as flash ROM (orequivalent nonvolatile memory) or optical disk drives and the like, maybe used in addition to or in place of the hardware depicted in FIG. 3.In addition, rather than a keyboard or pointing device, a touchscreen orother input/output device adapter may be used. Also, the processes ofthe present invention may be applied to a multiprocessor data processingsystem.

[0045] As another example, data processing system 300 may be astand-alone system configured to be bootable without relying on sometype of network communication interface, whether or not data processingsystem 300 comprises some type of network communication interface. As afurther example, data processing system 300 may be a Personal DigitalAssistant (PDA) device, which is configured with ROM and/or flash ROM inorder to provide non-volatile memory for storing operating system filesand/or user-generated data.

[0046] The depicted example in FIG. 3 and above-described examples arenot meant to imply architectural limitations. For example, dataprocessing system 300 also may be a notebook computer or hand heldcomputer in addition to taking the form of a PDA. Data processing system300 also may be a kiosk or a Web appliance.

[0047]FIG. 4 is an exemplary functional block diagram illustrating theprimary functional components of the client device according to thepresent invention. The elements of the functional block diagram of FIG.4 may be implemented as hardware, software, or a combination of hardwareand software components. In a preferred embodiment, the functionalelements shown in FIG. 4 are implemented as software instructionsexecuted by one or more of the hardware elements shown in FIG. 3.

[0048] As shown in FIG. 4, the client device includes a controller 410,a transceiver interface 420, an input/output device interface 430, asensor interface 440, and a memory 450. These elements are incommunication with one another via the control/data bus 460. Although abus architecture is shown in FIG. 4, the present invention is notlimited to such and any architecture allowing for the communication ofcontrol messages and data between the elements 410-450 may be usedwithout departing from the spirit and scope of the present invention.

[0049] The controller 410 controls the overall operation of the clientdevice. The controller 410 receives input from a user via theinput/output interface 430 and sends requests for routing information toa vehicle routing server via the transceiver interface 420. Thecontroller 410 receives the routing information from the vehicle routingserver and causes the information to be displayed to the user via theinput/output interface 430 and an output device coupled to theinput/output interface 430 (not shown).

[0050] In addition, the controller 410 receives sensor data via thesensor interface 440 and stores the sensor data in memory 450 inassociation with a leg of a route being followed by the vehicle. Forexample, the sensor data may comprise speed data, position data from aglobal positioning system, and the like. The position data may be usedto determine a current position along a route so that the speed data maybe correlated with a particular leg of the route. This information maybe uploaded to the vehicle routing server via the transceiver interface420.

[0051]FIG. 5 is an exemplary functional block diagram of a vehiclerouting server according to the present invention. As with the clientdevice shown in FIG. 4, the elements of the functional block diagram ofFIG. 5 may be implemented as hardware, software, or a combination ofhardware and software components. In a preferred embodiment, thefunctional elements shown in FIG. 5 are implemented as softwareinstructions executed by one or more of the hardware elements shown inFIG. 2.

[0052] As shown in FIG. 5, the vehicle routing server includes acontroller 510, a network interface 520, a route characteristic database530, a route determination device 540 and a historical data compilationdevice 550. These elements are coupled with one another via thecontrol/data bus 560. Although a bus architecture is shown in FIG. 5,the present invention is not limited to such and any architectureallowing for the communication of control messages and data between theelements 510-550 may be used without departing from the spirit and scopeof the present invention.

[0053] The controller 510 controls the overall operation of the vehiclerouting server. The controller 510 receives sensor data, historical dataand requests for optimum route information via the network interface520. The sensor data and historical data are compiled by the historicaldata compilation device 550 to identify characteristics of the variousroute legs. The compilation may include statistical analysis todetermine the characteristics or categorization of characteristics ofthe various route legs, as described above.

[0054] The characteristic information generated by the historical datacompilation device 550 is then stored in the route characteristicdatabase 530 in association with an identifier of the route leg or usedto update already existing entries in the route characteristic database530. The characteristic information may then be used by the routedetermination device 540 to identify an optimum route for a particularrequest.

[0055] The route determination device 540 receives the parametersincluded in the request for optimum route information received from theclient device. The parameters may include, for example, a startinglocation, ending location, and preferences for an optimum route input bya user. Based on this information, the route determination device 540identifies one or more route candidates. The route candidates aredetermined based on map information stored in the route determinationdevice 540. This map information may include, for example, all of thestreets within a particular geographic area, preferably partitioned intolegs. The legs that make up each route candidate are then analyzed andthe route candidates are compared to determine an optimum route.

[0056] The analysis of the legs of each of the route candidates mayinclude, for example, identifying a travel time for each leg,identifying a score for each leg, or the like, as described above. Theanalysis may further include determining a total score for each routecandidate and then comparing the total scores to determine an optimumroute.

[0057] The optimum route information may then be transmitted to theclient device via the network interface 520. The optimum routeinformation may include the legs that make up the optimum route as wellas any additional information that may be of use to the client devicewhen instructing the user regarding the optimum route. The client devicemay the use this information in any one of many possible ways to directthe user from the starting location to the ending location.

[0058]FIG. 6 is an exemplary diagram of a characteristic databaseaccording to the present invention. The particular fields andorganization shown in FIG. 6 is for illustrative purposes only and anyother fields or organization may be used in addition to or inreplacement of those shown in FIG. 6 without departing from the spiritand scope of the present invention.

[0059] As shown in FIG. 6, the characteristic database includes a field610 for a leg identifier, a field 620 for a GPS start location and GPSend location of the leg, and fields 630 for storing identifiers of thevarious characteristics of the leg. In the particular example shown inFIG. 6, the characteristics include a rain condition, snow condition,ice condition, crime condition, traffic enforcement condition, etc. Eachof these characteristics has a score associated with a leg. The scoresin the characteristic fields 630 are used when generating a total scorefor a leg, as well as for the entire route.

[0060] When the route determination device 540 retrieves information forlegs of a route from the characteristic database, the characteristicinformation is used along with weights determined based on parametersreceived in the request from the client device, to determine a score foreach leg. The scores for each leg are then summed to obtain a totalscore for the route. This is done for each route candidate. The totalscores for each route candidate are then compared to identify theoptimum route which may be, for example, the route candidate having thehighest or lowest score, depending on the particular embodiment.

[0061] While the example shown in FIG. 6 makes use of score identifiersin each of the characteristic fields 630, other identifiers may be usedwithout departing from the spirit and scope of the present invention.For example, textual identifiers such as “high”, “low”, “dangerous” andthe like may be used rather than numerical scores.

[0062]FIG. 7 provides an exemplary portion of a city road system as anexample to illustrate the operation of the present invention. Withregard to FIG. 7, assume that the operator of vehicle 114 wishes totravel from the starting point to the ending point. In this particularexample, it will be assumed that the routes are partitioned into legsdesignated by intersections of roadways. Thus, the portion of roadbetween two intersections is considered a leg.

[0063] As can be seen from FIG. 7, there are a plurality of routes thatmay be taken to reach the end point from the start point. Each of thesevarious routes have their own characteristics which influence whether ornot the particular route is an optimum route for traveling between thestart point and end point in view of the current circumstances and thedesires of the operator of the vehicle. As shown in FIG. 7, the leg A isunder construction, the leg B is an area where many accidents occurduring icy conditions, the leg C has many traffic tickets issued duringthe weekdays, leg D is in a high crime area and leg E is subject toflooding during rain conditions.

[0064] If the user of the vehicle indicates that he/she wishes to avoidhigh crime areas and areas where a large number of tickets are issued,this criteria makes the legs C and D less likely to be included in theoptimum route. Moreover, if the current environmental conditionsindicate that rain is falling, or that rain is likely, leg E becomesless likely to be included in the optimum route. After taking intoconsideration the various characteristics of the legs of the possibleroutes, other criteria, such as shortest path between the start pointand the end point, shortest travel time, and the like may be used toselect between the possible routes. Thus, the route denoted by the heavydark line may be selected as the optimum route for travel between thestart and end points. It should be noted that leg B is included in theroute since the current road conditions do not indicate any threat oficy conditions.

[0065]FIG. 8 is a flowchart outlining an exemplary operation of thepresent invention when receiving a request for an optimum route. Asshown in FIG. 8, the operation starts with receiving the request (step810). Thereafter, the route candidates are determined based on mapinformation (step 820). The characteristic information for each leg of aroute candidate is then retrieved from the characteristic database (step830). A score for the route candidate is then determined based on scoresfor each of the legs and stored in memory (step 840). The scores areinfluenced by the characteristic information generated from thehistorical data, user preferences, and current traveling conditions, forexample.

[0066] A determination is then made as to whether there are additionalroute candidates (step 850). If so, the operation returns to step 830with the next route candidate. If no additional route candidates exist,the scores for each of the route candidates are compared (step 860). Anoptimum route is then identified based on the comparison and the routeinformation is transmitted to the requesting client device (step 870).Thereafter, the operation ends.

[0067] Thus, the present invention provides an apparatus, system, methodand computer program product for determining optimum routing of vehiclesbased on historical information, user preferences and current travelconditions. The present invention provides an enhancement over knownvehicle routing systems in that the experiences of travelers arecompiled and statistically analyzed to determiner characteristics ofeach route. These characteristics provide an indicator to a traveler ofthe most probable experience they will encounter when traveling along aroute under various conditions. Thus, a more complete determination ofan optimum route may be determined in view of preferences of a user andexperiences of other travelers, than the mere determination of shortestroute or shortest travel time as in the prior art.

[0068] While the above embodiments of the present invention have beendescribed in terms of a land vehicle, such as an automobile, the presentinvention is not limited to any particular type of vehicle. The presentinvention may be utilized in determining routes from a starting positionto a destination position for any type of vehicle, including fixed wingaircraft, rotary wing aircraft, ships, boats, and the like. Thus, theterm “vehicle” as it is used in the present application is not meant tobe limited to land vehicles but is intended to mean any type of vehicle.

[0069] It is important to note that while the present invention has beendescribed in the context of a fully functioning data processing system,those of ordinary skill in the art will appreciate that the processes ofthe present invention are capable of being distributed in the form of acomputer readable medium of instructions in a variety of forms and thatthe present invention applies equally regardless of the particular typeof signal bearing media actually used to carry out the distribution.Examples of computer readable media include recordable-type media such afloppy disk, a hard disk drive, a RAM, a CD-ROM, and transmission-typemedia such as digital and analog communications links.

[0070] The description of the present invention has been presented forpurposes of illustration and description, and is not intended to beexhaustive or limited to the invention in the form disclosed. Manymodifications and variations will be apparent to those of ordinary skillin the art. The embodiment was chosen and described in order to bestexplain the principles of the invention, the practical application, andto enable others of ordinary skill in the art to understand theinvention for various embodiments with various modifications as aresuited to the particular use contemplated.

What is claimed is:
 1. A method of determining a route from a startingposition to a destination position for a vehicle, comprising: obtainingroute criteria for selecting a route; obtaining historical data for aplurality of routes; and selecting a route from the starting position tothe destination position based on a comparison of the route criteria tothe historical data for a plurality of routes.
 2. The method of claim 1,wherein the route criteria reflect a travel experience desired by anoperator of the vehicle.
 3. The method of claim 1, wherein the routecriteria include one or more of shortest travel time, shortest traveldistance, avoid high crime areas, avoid high traffic ticket areas, andavoid high accident areas.
 4. The method of claim 1, further comprisingobtaining current environmental condition information, wherein selectinga route from the starting position to the destination position includesselecting the route based on a comparison of the route criteria, thecurrent environmental condition information and the historical data fora plurality of routes.
 5. The method of claim 1, wherein the historicaldata for a plurality of routes includes one or more of traffic conditioninformation, road condition information, criminal activity information,traffic law enforcement information, accident information, and temporalinformation.
 6. The method of claim 1, wherein the plurality of routesare partitioned into legs, and wherein the historical data is historicaldata for each leg of the plurality of routes.
 7. The method of claim 1,wherein the historical data is obtained from one or more historical datasuppliers.
 8. The method of claim 1, wherein the one or more historicaldata suppliers includes one or more of a weather information supplier, acriminal activity information supplier, a traffic condition informationsupplier, a road condition information supplier, a traffic lawenforcement information supplier, and an accident information supplier.9. The method of claim 1, wherein the historical information is uploadedfrom a vehicle to a vehicle routing server when the vehicle completes aportion of a route.
 10. The method of claim 1, wherein selecting a routefrom the starting position to the destination position based on acomparison of the route criteria to the historical data for a pluralityof routes includes: calculating a score for each of the plurality ofroutes based on a comparison of the route criteria to the historicaldata for each of the plurality of routes; comparing the scores for eachof the plurality of routes; and selecting a route based on thecomparison of the scores for each of the plurality of routes.
 11. Themethod of claim 10, wherein calculating a score for each of theplurality of routes includes for each route, summing scores for each ofa plurality of legs that comprise the route.
 12. The method of claim 10,further comprising weighting the scores for each of the plurality ofroutes based on at least one of current environmental conditions andcurrent temporal conditions.
 13. The method of claim 10, furthercomprising weighting the scores for each of the plurality of routesbased on the route criteria.
 14. The method of claim 1, whereinselecting a route from the starting position to the destination positionbased on a comparison of the route criteria to the historical data for aplurality of routes includes using at least one of a neural network, anexpert system, a rule based system, an inference engine, and a datamining technique.
 15. An apparatus for determining a route from astarting position to a destination position for a vehicle, comprising:means for obtaining route criteria for selecting a route; means forobtaining historical data for a plurality of routes; and means forselecting a route from the starting position to the destination positionbased on a comparison of the route criteria to the historical data for aplurality of routes.
 16. The apparatus of claim 15, wherein the routecriteria reflect a travel experience desired by an operator of thevehicle.
 17. The apparatus of claim 15, wherein the route criteriainclude one or more of shortest travel time, shortest travel distance,avoid high crime areas, avoid high traffic ticket areas, and avoid highaccident areas.
 18. The apparatus of claim 15, further comprising meansfor obtaining current environmental condition information, wherein themeans for selecting a route from the starting position to thedestination position includes means for selecting the route based on acomparison of the route criteria, the current environmental conditioninformation and the historical data for a plurality of routes.
 19. Theapparatus of claim 15, wherein the historical data for a plurality ofroutes includes one or more of traffic condition information, roadcondition information, criminal activity information, traffic lawenforcement information, accident information, and temporal information.20. The apparatus of claim 15, wherein the plurality of routes arepartitioned into legs, and wherein the historical data is historicaldata for each leg of the plurality of routes.
 21. The apparatus of claim15, wherein the historical data is obtained from one or more historicaldata suppliers.
 22. The apparatus of claim 15, wherein the one or morehistorical data suppliers includes one or more of a weather informationsupplier, a criminal activity information supplier, a traffic conditioninformation supplier, a road condition information supplier, a trafficlaw enforcement information supplier, and an accident informationsupplier.
 23. The apparatus of claim 15, wherein the historicalinformation is uploaded from a vehicle to a vehicle routing server whenthe vehicle completes a portion of a route.
 24. The apparatus of claim15, wherein the means for selecting a route from the starting positionto the destination position based on a comparison of the route criteriato the historical data for a plurality of routes includes: means forcalculating a score for each of the plurality of routes based on acomparison of the route criteria to the historical data for each of theplurality of routes; means for comparing the scores for each of theplurality of routes; and means for selecting a route based on thecomparison of the scores for each of the plurality of routes.
 25. Theapparatus of claim 24, wherein the means for calculating a score foreach of the plurality of routes includes means for summing, for eachroute, scores for each of a plurality of legs that comprise the route.26. The apparatus of claim 24, further comprising means for weightingthe scores for each of the plurality of routes based on at least one ofcurrent environmental conditions and current temporal conditions. 27.The apparatus of claim 24, further comprising means for weighting thescores for each of the plurality of routes based on the route criteria.28. The apparatus of claim 15, wherein the means for selecting a routefrom the starting position to the destination position based on acomparison of the route criteria to the historical data for a pluralityof routes includes at least one of a neural network, an expert system, arule based system, an inference engine, and a data mining technique. 29.A computer program product in a computer readable medium for determininga route from a starting position to a destination position for avehicle, comprising: first instructions for obtaining route criteria forselecting a route; second instructions for obtaining historical data fora plurality of routes; and third instructions for selecting a route fromthe starting position to the destination position based on a comparisonof the route criteria to the historical data for a plurality of routes.30. The computer program product of claim 29, wherein the route criteriareflect a travel experience desired by an operator of the vehicle. 31.The computer program product of claim 29, wherein the route criteriainclude one or more of shortest travel time, shortest travel distance,avoid high crime areas, avoid high traffic ticket areas, and avoid highaccident areas.
 32. The computer program product of claim 29, furthercomprising fourth instructions for obtaining current environmentalcondition information, wherein the third instructions for selecting aroute from the starting position to the destination position includesinstructions for selecting the route based on a comparison of the routecriteria, the current environmental condition information and thehistorical data for a plurality of routes.
 33. The computer programproduct of claim 29, wherein the historical data for a plurality ofroutes includes one or more of traffic condition information, roadcondition information, criminal activity information, traffic lawenforcement information, accident information, and temporal information.34. The computer program product of claim 29, wherein the plurality ofroutes are partitioned into legs, and wherein the historical data ishistorical data for each leg of the plurality of routes.
 35. Thecomputer program product of claim 29, wherein the historical data isobtained from one or more historical data suppliers.
 36. The computerprogram product of claim 29, wherein the one or more historical datasuppliers includes one or more of a weather information supplier, acriminal activity information supplier, a traffic condition informationsupplier, a road condition information supplier, a traffic lawenforcement information supplier, and an accident information supplier.37. The computer program product of claim 29, wherein the thirdinstructions include: instructions for calculating a score for each ofthe plurality of routes based on a comparison of the route criteria tothe historical data for each of the plurality of routes; instructionsfor comparing the scores for each of the plurality of routes; andinstructions for selecting a route based on the comparison of the scoresfor each of the plurality of routes.
 38. The computer program product ofclaim 37, wherein the instructions for calculating a score for each ofthe plurality of routes includes instructions for summing, for eachroute, scores for each of a plurality of legs that comprise the route.39. The computer program product of claim 37, further comprisinginstructions for weighting the scores for each of the plurality ofroutes based on at least one of current environmental conditions andcurrent temporal conditions.
 40. The computer program product of claim37, further comprising instructions for weighting the scores for each ofthe plurality of routes based on the route criteria.
 41. The computerprogram product of claim 29, wherein the third instructions includeinstructions for using at least one of a neural network, an expertsystem, a rule based system, an inference engine, and a data miningtechnique.